package com.nnnu.wsnackshop.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nnnu.wsnackshop.pojo.entity.Products;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 商品表 Mapper 接口
 * </p>
 *
 * @author zk
 * @since 2025-05-14
 */
@Mapper
public interface ProductsMapper extends BaseMapper<Products> {

    /**
     * 通用商品查询方法，支持多条件和排序
     * 
     * @param page       分页参数
     * @param name       商品名称关键字
     * @param status     商品状态
     * @param storeId    门店ID
     * @param categoryId 分类ID
     * @param spuId      SPU ID
     * @param minPrice   最低价格
     * @param maxPrice   最高价格
     * @param sortBy     排序字段
     * @param sortOrder  排序方向
     * @return 商品列表
     */
    List<Products> findProductsWithSort(Page<Products> page,
            @Param("name") String name,
            @Param("status") Integer status,
            @Param("storeId") Integer storeId,
            @Param("categoryId") Integer categoryId,
            @Param("spuId") Integer spuId,
            @Param("minPrice") Integer minPrice,
            @Param("maxPrice") Integer maxPrice,
            @Param("sortBy") String sortBy,
            @Param("sortOrder") String sortOrder);

    /**
     * 查询热门商品
     * 
     * @param limit 限制数量
     * @return 热门商品列表
     */
    List<Products> selectHotProducts(@Param("limit") int limit);
}
